package com.eurasia.assignment.infrastructure.hoj;

import java.util.List;
import java.util.Optional;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import com.eurasia.assignment.domain.hoj.HOJJudgementStatus;

@Repository
public interface HOJFullCaseJudgementRepository extends JpaRepository<HOJFullCaseJudgementEntity, Long> {
    
    /**
     * 通过运行ID查找判题记录
     */
    Optional<HOJFullCaseJudgementEntity> findByRunId(Long runId);
    
    /**
     * 查找用户的所有判题记录
     */
    List<HOJFullCaseJudgementEntity> findBySubmitterId(Long submitterId);
    
    /**
     * 查找特定题目的所有判题记录
     */
    List<HOJFullCaseJudgementEntity> findByProblemId(Long problemId);
    
    /**
     * 查找特定题目编号的所有判题记录
     */
    List<HOJFullCaseJudgementEntity> findByProblemNo(String problemNo);
    
    /**
     * 查找用户对特定题目的所有判题记录
     */
    List<HOJFullCaseJudgementEntity> findBySubmitterIdAndProblemId(Long submitterId, Long problemId);
    
    /**
     * 查找用户对特定题目的所有判题记录（按创建时间降序排列）
     */
    List<HOJFullCaseJudgementEntity> findBySubmitterIdAndProblemIdOrderByCreatedAtDesc(Long submitterId, Long problemId);
    
    /**
     * 查找用户的所有判题记录（按状态筛选）
     */
    List<HOJFullCaseJudgementEntity> findBySubmitterIdAndStatus(Long submitterId, HOJJudgementStatus status);
} 